package org.example.service.user;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.common.PageResponseDto;
import org.example.model.common.ResponseResult;
import org.example.model.user.dtos.LoginDto;
import org.example.model.user.dtos.UserInfoNoPwdDto;
import org.example.model.user.entities.UserInfo;
import org.example.model.user.vos.AddUserInfoVo;
import org.example.model.user.vos.LoginVo;
import org.example.model.user.vos.SearchUserInfoVo;

import java.util.List;

/**
 * 用户信息服务层接口
 */
public interface UserInfoService extends IService<UserInfo> {

    /**
     * 添加一条用户信息
     */
    ResponseResult<Boolean> InsertUserInfo(AddUserInfoVo addUserInfoVo);

    /**
     * 根据id修改一条用户信息
     */
    ResponseResult<Boolean> UpdateUserInfoById(AddUserInfoVo addUserInfoVo);

    /**
     * 分页根据条件（用户名，手机号模糊查询，性别，部门，职位，状态精确查询，）获取用户信息列表
     */
    ResponseResult<PageResponseDto<List<UserInfoNoPwdDto>>> SelectUserInfoByConditions (SearchUserInfoVo searchUserInfoVo);

    /**
     * 根据id删除一条用户信息
     */
    ResponseResult<Boolean> DeleteUserInfoById(int id);

    /**
     * 用户登录
     */
    ResponseResult<LoginDto> Login(LoginVo loginVo);

    /**
     * 用户注册
     */
    ResponseResult<LoginDto> Register(LoginVo loginVo);

}
